From 2f1190118f1721a556479cedc809929f3adcf076 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Fri, 8 Dec 2006 10:59:18 +0000 Subject: [PATCH] Implement the VM.auto_power_on field. Signed-off-by: Ewan Mellor --- tools/libxen/include/xen_vm.h | 15 +++++++++++++++ tools/libxen/src/xen_vm.c | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/tools/libxen/include/xen_vm.h b/tools/libxen/include/xen_vm.h index a0491ce2e6..c2fc5e42b9 100644 --- a/tools/libxen/include/xen_vm.h +++ b/tools/libxen/include/xen_vm.h @@ -79,6 +79,7 @@ typedef struct xen_vm_record char *name_description; int64_t user_version; bool is_a_template; + bool auto_power_on; struct xen_host_record_opt *resident_on; int64_t memory_static_max; int64_t memory_dynamic_max; @@ -276,6 +277,13 @@ extern bool xen_vm_get_is_a_template(xen_session *session, bool *result, xen_vm vm); +/** + * Get the auto_power_on field of the given VM. + */ +extern bool +xen_vm_get_auto_power_on(xen_session *session, bool *result, xen_vm vm); + + /** * Get the resident_on field of the given VM. */ @@ -563,6 +571,13 @@ extern bool xen_vm_set_is_a_template(xen_session *session, xen_vm vm, bool is_a_template); +/** + * Set the auto_power_on field of the given VM. + */ +extern bool +xen_vm_set_auto_power_on(xen_session *session, xen_vm vm, bool auto_power_on); + + /** * Set the memory/dynamic_max field of the given VM. */ diff --git a/tools/libxen/src/xen_vm.c b/tools/libxen/src/xen_vm.c index 9743222c02..e6c95fc12e 100644 --- a/tools/libxen/src/xen_vm.c +++ b/tools/libxen/src/xen_vm.c @@ -67,6 +67,9 @@ static const struct_member xen_vm_record_struct_members[] = { .key = "is_a_template", .type = &abstract_type_bool, .offset = offsetof(xen_vm_record, is_a_template) }, + { .key = "auto_power_on", + .type = &abstract_type_bool, + .offset = offsetof(xen_vm_record, auto_power_on) }, { .key = "resident_on", .type = &abstract_type_ref, .offset = offsetof(xen_vm_record, resident_on) }, @@ -398,6 +401,22 @@ xen_vm_get_is_a_template(xen_session *session, bool *result, xen_vm vm) } +bool +xen_vm_get_auto_power_on(xen_session *session, bool *result, xen_vm vm) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = vm } + }; + + abstract_type result_type = abstract_type_bool; + + XEN_CALL_("VM.get_auto_power_on"); + return session->ok; +} + + bool xen_vm_get_resident_on(xen_session *session, xen_host *result, xen_vm vm) { @@ -1081,6 +1100,22 @@ xen_vm_set_is_a_template(xen_session *session, xen_vm vm, bool is_a_template) } +bool +xen_vm_set_auto_power_on(xen_session *session, xen_vm vm, bool auto_power_on) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = vm }, + { .type = &abstract_type_bool, + .u.bool_val = auto_power_on } + }; + + xen_call_(session, "VM.set_auto_power_on", param_values, 2, NULL, NULL); + return session->ok; +} + + bool xen_vm_set_memory_dynamic_max(xen_session *session, xen_vm vm, int64_t dynamic_max) { -- 2.30.2